Ajax এর মাধ্যমে XML ডেটা রিকোয়েস্ট এবং রেসপন্স হ্যান্ডলিং করা JSON এর মতোই একটি প্রক্রিয়া, তবে এখানে XML ফরম্যাটের ডেটা রিসিভ এবং প্রসেস করা হয়। XML (eXtensible Markup Language) হলো ডেটা বিনিময়ের একটি ফরম্যাট যা স্ট্রাকচার্ড ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়। নিচে একটি উদাহরণসহ XML ডেটা রিকোয়েস্ট এবং রেসপন্স হ্যান্ডলিংয়ের ধাপগুলো ব্যাখ্যা করা হলো।
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>XML Data Request Example</title>
</head>
<body>
<h1>Fetch and Display XML Data Using Ajax</h1>
<button onclick="fetchXMLData()">Fetch XML Data</button>
<div id="xml-data-container">
<!-- XML ডেটা এখানে দেখানো হবে -->
</div>
<script src="app.js"></script>
</body>
</html>
বিস্তারিত ব্যাখ্যা:
<h1>
), একটি বোতাম (<button>
), এবং একটি <div>
এলিমেন্ট রয়েছে।fetchXMLData()
ফাংশন কল হবে, যা Ajax রিকোয়েস্ট করে XML ডেটা ফেচ করবে এবং তা প্রসেস করবে।xml-data-container
নামে একটি <div>
এলিমেন্ট রয়েছে, যেখানে XML ডেটা ডিসপ্লে করা হবে।function fetchXMLData() {
// XMLHttpRequest অবজেক্ট তৈরি করা
var xhr = new XMLHttpRequest();
// GET রিকোয়েস্ট ওপেন করা
xhr.open("GET", "https://example.com/api/data.xml", true);
// রেসপন্স হ্যান্ডলিং সেট করা
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) { // রিকোয়েস্ট সফল এবং সম্পূর্ণ কিনা তা চেক করা
// XML ডেটা রিসিভ করা
var xmlDoc = xhr.responseXML;
// XML ডেটা থেকে ভ্যালু এক্সট্র্যাক্ট করা
var items = xmlDoc.getElementsByTagName("item");
var output = "<h2>Items:</h2><ul>";
for (var i = 0; i < items.length; i++) {
var name = items[i].getElementsByTagName("name")[0].textContent;
var price = items[i].getElementsByTagName("price")[0].textContent;
output += `<li><strong>${name}</strong>: $${price}</li>`;
}
output += "</ul>";
// HTML এ ডেটা দেখানো
document.getElementById("xml-data-container").innerHTML = output;
} else if (xhr.readyState === 4) {
// যদি রিকোয়েস্ট ব্যর্থ হয়, তাহলে এরর মেসেজ দেখানো
document.getElementById("xml-data-container").innerHTML = "Error fetching XML data!";
}
};
// রিকোয়েস্ট পাঠানো
xhr.send();
}
বিস্তারিত ব্যাখ্যা:
XMLHttpRequest অবজেক্ট তৈরি করা:
fetchXMLData()
ফাংশনে একটি XMLHttpRequest
অবজেক্ট তৈরি করা হয়েছে, যা Ajax রিকোয়েস্ট পরিচালনা করবে।রিকোয়েস্ট ওপেন করা:
xhr.open("GET", "https://example.com/api/data.xml", true);
মেথড ব্যবহার করে একটি GET রিকোয়েস্ট সেটআপ করা হয়েছে।"https://example.com/api/data.xml"
URL থেকে XML ডেটা ফেচ করা হবে।true
মানে রিকোয়েস্টটি অ্যাসিনক্রোনাসভাবে চলবে।XML ডেটা প্রসেস করা:
xhr.onreadystatechange
ইভেন্ট হ্যান্ডলার ব্যবহার করে চেক করা হয়েছে যে রিকোয়েস্ট সম্পূর্ণ হয়েছে কিনা (xhr.readyState === 4
) এবং সফল হয়েছে কিনা (xhr.status === 200
)।xhr.responseXML
ব্যবহার করে XML ডেটা প্রাপ্ত হয়েছে।getElementsByTagName()
মেথড ব্যবহার করে XML ডেটা থেকে নির্দিষ্ট এলিমেন্টের ভ্যালু এক্সট্র্যাক্ট করা হয়েছে।HTML DOM আপডেট করা:
xml-data-container
ডিভে ইনজেক্ট করা হয়েছে।এরর ম্যানেজমেন্ট:
readyState === 4
কিন্তু status !== 200
), তাহলে একটি এরর মেসেজ দেখানো হয়েছে।এই উদাহরণে, আমরা একটি ডেমো XML ফাইল ব্যবহার করেছি, যা নিচের মতো হতে পারে:
<items>
<item>
<name>Apple</name>
<price>0.99</price>
</item>
<item>
<name>Banana</name>
<price>0.59</price>
</item>
<item>
<name>Cherry</name>
<price>2.99</price>
</item>
</items>
XMLHttpRequest
ব্যবহার করে একটি GET রিকোয়েস্ট পাঠানো হয়েছে।xhr.responseXML
দিয়ে ডকুমেন্ট অবজেক্টে কনভার্ট করা হয়েছে।getElementsByTagName()
মেথড ব্যবহার করে XML থেকে প্রয়োজনীয় ভ্যালু এক্সট্র্যাক্ট করা হয়েছে।xml-data-container
ডিভে ইনজেক্ট করা হয়েছে।responseXML
প্রপার্টি ব্যবহার করা হয়, যা XML ডেটাকে ডকুমেন্ট অবজেক্টে কনভার্ট করে।এই উদাহরণটি অনুসরণ করে Ajax এর মাধ্যমে XML ডেটা রিকোয়েস্ট, প্রসেসিং, এবং HTML এ দেখানোর প্রক্রিয়া সহজে বোঝা যায়। এটি ওয়েব অ্যাপ্লিকেশনকে XML ফরম্যাটে ডেটা হ্যান্ডেল করতে সাহায্য করে, যা অনেক ক্ষেত্রে প্রয়োজনীয় হতে পারে।
Read more